Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

513
Vistas
Vue 3 / Typescript: "No se puede encontrar el nombre" en la variable de plantilla

En Vue 3 / Typescript, recibo el siguiente error:

"No se puede encontrar el nombre", al hacer referencia a una variable de datos en el área ....

¿Como puedo resolver esto?

Por favor, vea la captura de pantalla adjunta.

ingrese la descripción de la imagen aquí

Muchas gracias de antemano.

over 4 years ago · Santiago Trujillo
6 Respuestas
Responde la pregunta

0

Te falta setup dentro de <script lang="ts"> por lo que debería ser:

<script setup lang="ts">

De los documentos:

Al usar <script setup> , cualquier enlace de nivel superior (incluidas variables, declaraciones de funciones e importaciones) declarado dentro se puede usar directamente en la plantilla (...)

https://v3.vuejs.org/api/sfc-script-setup.html#los enlaces de nivel superior están expuestos a la plantilla

over 4 years ago · Santiago Trujillo Denunciar

0

No sé si todavía tienes este error, pero también tuve esto. Lo he arreglado arreglando un error de TS silencioso. Cuando solucioné este error, todo volvió a funcionar.

EDITAR: Encontré el error que tenía. Había puesto una enumeración en un archivo * .d.ts y estaba usando esta enumeración en el archivo que me dio el mismo error que usted. El problema es que una enumeración no puede estar en un archivo *.d.ts porque no se compila en JS después y pierde el valor de la enumeración. Al corregir este error, ya no se mostraban los errores. Lo que quiero decir con esto no es que haya una solución simple para su problema, sino que tal vez, como yo, ¡tiene un error silencioso que se esconde y causa estos errores!

over 4 years ago · Santiago Trujillo Denunciar

0

Tuve un problema similar cuando agregué lang="ts" al archivo vue ya que soy nuevo en Vue 3 y Typescript. Lo resolví asegurándome de lo siguiente:

 export default

para

 export default defineComponent({

en su archivo .vue.

Asegúrese de agregar la importación.

 import { defineComponent }

Sus datos también deben residir en la configuración.

 setup () { return { loader: false, error: false, firstTime: false
over 4 years ago · Santiago Trujillo Denunciar

0

La API de composición ayuda mucho con este problema. No parece haber un camino claro para solucionar el problema en la API de Opciones.

Una forma de solucionar el problema en la API de opciones:

Cree un archivo MyComponent.d.ts que corresponda al componente con el que está trabajando y agregue lo siguiente en ese archivo:

 declare module '@vue/runtime-core' { interface ComponentCustomProperties { myTroublesomeVariable: boolean // change here } }
over 4 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema.

No se pudo encontrar una solución después de inspeccionar VSCode/TS y Volar.

Creó una pequeña reproducción (quería publicarla en Discord):

 <template> <input v-model="email" /> </template> <script setup lang="ts"> import { ref } from 'vue' const email = ref('') </script>

Después de guardar este archivo como Test.vue , el error en otros archivos desapareció. Lo siento, pero no sé por qué...

over 4 years ago · Santiago Trujillo Denunciar

0

Use defineComponent en lugar de export default class ParentSupervise extends Vue . Escribe así:

 <template> <div class="hello"> <h1>{{ book.title }}</h1> </div> </template> <script lang="ts"> import { reactive, ref, defineComponent } from "vue"; interface Book { title: string; } const HelloWorld = defineComponent({ data() { return { boardFields: "燕儿", }; }, setup() { let name = ref("燕"); const book = reactive({ title: "Vue 3 Guide" }) as Book; debugger; console.log("name :>> ", name); console.log("book :>> ", book); // 暴露给 template return { book, name, }; }, }); export default HelloWorld; </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped lang="scss"></style>
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda